package com.huan.demo.message;

import lombok.Data;
import lombok.ToString;

/**
 * @author yihang
 */

public class RpcResponseMessage extends Message {
    /**
     * 返回值
     */
    private Object returnValue;
    /**
     * 异常值
     */
    private String exceptionValue;

    /**
     * 由于我使用的是jdk17 它netty 不能支持使用Exception对象返回异常值，会包：java.lang.reflect.InaccessibleObjectException: Unable to make field private java.lang.String java.lang.Throwable.detailMessage accessible: module java.base does not "opens java.lang" to unnamed module @497470ed
     */
//    private Exception exceptionValue;

    @Override
    public int getMessageType() {
        return RPC_MESSAGE_TYPE_RESPONSE;
    }

    public Object getReturnValue() {
        return returnValue;
    }

    public void setReturnValue(Object returnValue) {
        this.returnValue = returnValue;
    }
//
//    public Exception getExceptionValue() {
//        return exceptionValue;
//    }
//
//    public void setExceptionValue(Exception exceptionValue) {
//        this.exceptionValue = exceptionValue;
//    }


    public String getExceptionValue() {
        return exceptionValue;
    }

    public void setExceptionValue(String exceptionValue) {
        this.exceptionValue = exceptionValue;
    }

    @Override
    public String toString() {
        return "RpcResponseMessage{" +
                "returnValue=" + returnValue +
                ", exceptionValue=" + exceptionValue +
                '}';
    }
}
